package com.zjsru.oneDay202210;

/**
 * @Author: likew
 * @Date: 2022/10/3
 * 检查二进制字符串字段
 * 如果 s 包含 零个或一个由连续的 '1' 组成的字段 ，返回 true 。否则，返回 false 。
 *
 * 如果 s中由连续若干个'1' 组成的字段数量不超过 1，返回 true 。否则，返回 false 。
 *
 *
 * 输入：s = "1001"
 * 输出：false
 * 解释：由连续若干个 '1' 组成的字段数量为 2，返回 false
 */
public class CheckOnesSegment {
    
    /**
     * 依据提意 比较按照0分割的字符串
     */
    public boolean checkOnesSegment(String s) {
        String[] strings = s.split("0");
        return strings.length <= 1;
    }
    
    /**
     * 简单模拟
     */
    public boolean checkOnesSegment2(String s) {
        int n = s.length(), cnt = 0, idx = 0;
        while (idx < n && cnt <= 1) {
            while (idx < n && s.charAt(idx) == '0') {
                idx++;
            }
            if (idx < n) {
                while (idx < n && s.charAt(idx) == '1') {
                    idx++;
                }
                cnt++;
            }
        }
        return cnt <= 1;
    }
    
    
    public static void main(String[] args) {
        CheckOnesSegment checkOnesSegment = new CheckOnesSegment();
        String s = "1001";
        System.out.println(checkOnesSegment.checkOnesSegment2(s));
    }
}
